package Facade;

public class ShapeMaker {
    /*
        ShapeMaker 是定义的 外观类
        ShapeMaker 类 使用实体类 来代表用户对这些类的调用

        外观模式涉及到一个单一的类, 该类提供了客户端请求的 "简化方法" 和 "对现有系统类方法的 委托调用"

     */

    private Shape circle;
    private Shape rectangle;
    private Shape square;


    public ShapeMaker(){
        // 无参的构造函数， 但需要实例化其要 代替执行所有步骤的对象
        circle = new Circle();
        rectangle = new Rectangle();
        square = new Square();
    }


    // ShapeMaker 对象代替执行了 三个必要的步骤
    public void drawCircle(){
        circle.draw();
    }

    public void drawRectangle(){
        rectangle.draw();
    }

    public void drawSquare(){
        square.draw();
    }


}
